package com.builder;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.ViewScoped;

import com.model.AcuerdoDetalle;
import com.view.AcuerdoDetalleView;
import com.view.ProductoView;

@ManagedBean
@ViewScoped
@SuppressWarnings("serial")
public class AcuerdoDetalleBuilder extends
		BaseBuilder<AcuerdoDetalleView, AcuerdoDetalle> {

	@ManagedProperty("#{productoBuilder}")
	private ProductoBuilder productoBuilder;

	@Override
	public AcuerdoDetalle toDomain(AcuerdoDetalleView view) {
		return new AcuerdoDetalle(view.getId(), view.getTipoDescuento(),
				view.getCantidad(), view.getValor(),
				view.getProducto() != null ? productoBuilder.toDomain(view
						.getProducto()) : null);
	}

	@Override
	public AcuerdoDetalleView toView(AcuerdoDetalle model) {
		return new AcuerdoDetalleView(model.getID(), model.getTipoDescuento(),
				model.getCantidad(), model.getValor(),
				model.getProducto() != null ? productoBuilder.toView(model
						.getProducto()) : new ProductoView(),
				model.getProducto() != null ? Boolean.FALSE : Boolean.TRUE);
	}

	public ProductoBuilder getProductoBuilder() {
		return productoBuilder;
	}

	public void setProductoBuilder(ProductoBuilder productoBuilder) {
		this.productoBuilder = productoBuilder;
	}

}
